package com.ds.m3d.events {
	import com.adobe.scenegraph.SceneNode;
	import flash.events.Event;
	
	/**
	 * ...
	 * @author DoctorSTaL
	 */
	public class MouseEvent3D extends Event {
// Для начала реализуем over и out, а все остальные события потом прикрутим сверху.
		public static const MOUSE_OVER : String = "mouseOver3d";
		public static const MOUSE_OUT : String = "mouseOut3d";

		public var screenX : Number;
		public var screenY : Number;
		public var targetNode:SceneNode;
		
// Пока непонятно - как мы будем высчитывать точку пересечения, так что локальные координаты в далекое TODO
//		public var localX : Number;
//		public var localY : Number;
//		public var localZ : Number;

		public var ctrlKey : Boolean;
		public var altKey : Boolean;
		public var shiftKey : Boolean;
		
		public function MouseEvent3D(type:String) { 
			super(type, false, false);
		} 
		
		public override function clone() : Event {
			var result : MouseEvent3D = new MouseEvent3D(type);

			result.screenX = screenX;
			result.screenY = screenY;
			result.targetNode = targetNode;

//			result.localX = localX;
//			result.localY = localY;
//			result.localZ = localZ;

			result.ctrlKey = ctrlKey;
			result.shiftKey = shiftKey;
			result.altKey = altKey;

			return result;
		}
		
		public override function toString():String { 
			return formatToString("Mouse3DEvent", "type", "bubbles", "cancelable", "eventPhase"); 
		}
		
	}
	
}